#ifndef CALCULATORTEST_H
#define	CALCULATORTEST_H

#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include <limits>
#include "Calculator.h"

class CalculatorTest : public CPPUNIT_NS::TestFixture {
    CPPUNIT_TEST_SUITE(CalculatorTest);

    CPPUNIT_TEST(additionTest);
    CPPUNIT_TEST(subtractionTest);
    CPPUNIT_TEST(multiplyTest);
    CPPUNIT_TEST(divisionTest);
    CPPUNIT_TEST(powerTest);
    CPPUNIT_TEST(factorialTest);
    CPPUNIT_TEST(minTest);
    CPPUNIT_TEST(maxTest);
    CPPUNIT_TEST(logTest);
    CPPUNIT_TEST(rootTest);
    CPPUNIT_TEST(sinTest);
    CPPUNIT_TEST(cosTest);
    CPPUNIT_TEST(tanTest);
    CPPUNIT_TEST(cotTest);
    CPPUNIT_TEST(sinhTest);
    CPPUNIT_TEST(coshTest);
    CPPUNIT_TEST(tanhTest);
    CPPUNIT_TEST(cothTest);

    CPPUNIT_TEST_SUITE_END();

public:
    void setUp();
    void tearDown();
private:
    void additionTest();
    void subtractionTest();
    void multiplyTest();
    void divisionTest();
    void powerTest();
    void factorialTest();
    void minTest();
    void maxTest();
    void logTest();
    void rootTest();
    void sinTest();
    void cosTest();
    void tanTest();
    void cotTest();
    void sinhTest();
    void coshTest();
    void tanhTest();
    void cothTest();

    Calculator *c1, *c2, *c3, *c4, *c5, *c6, *c7, *c8, *c9, *c10;
};

#endif	/* CALCULATORTEST_H */